/**
 * 
 */
package com.wsd.dao;

import java.util.List;

import com.wsd.bean.Users;

/**
 * @author TuZiJun
 *
 */
public interface UsersDaoInterface {

	public void save(Users transientInstance);

	public void delete(Users persistentInstance);

	public Users findById(java.lang.Integer id);

	public List<Users> findAll();
	public List<Users> findByExample(Users user);

	/**
	 * @param username
	 * @return
	 */
	public List findByUsername(String username);

	/**
	 * @param user
	 * @param start
	 * @param limit
	 * @return
	 */
	public List<Users> findByExample(Users user, int start, int limit);

	/**
	 * @param names
	 * @param values
	 * @param start
	 * @param limit
	 * @return
	 */
	public List<Users> findUsers(String[] names, Object[] values, int start, int limit);

	/**
	 * @param names
	 * @param values
	 */
	public int findUsersCount(String[] names, Object[] values);

	/**
	 * @param key
	 * @param names
	 * @param values
	 * @param start
	 * @param limit
	 * @return
	 */
	public List<Users> searchUsers(String key, String[] names, Object[] values, int start, int limit);

	/**
	 * @param key
	 * @param names
	 * @param values
	 * @return
	 */
	public int searchUsersCount(String key, String[] names, Object[] values);

	/**
	 * @param userId
	 * @param state
	 */
	public void updateState(int userId, boolean state);

	/**
	 * @param userIds
	 * @param userLevel
	 */
	public void updateLevel(int userId, int userLevel);

	/**
	 * @param user
	 */
	public void update(Users user);
}
